1. Field of the Invention
The present invention relates to microprocessors in general and in particular to a system for reprogramming a microprocessor through a standard serial port.
2. Background of the Invention
Printed circuit boards are built into many machines which contain microprocessors, EPROM chips, or other memory devices, which perform a variety of specialized functions. Such machines may include, but are not limited to, printers, copiers, or other dedicated devices.
Many microprocessors require that operational code, called firmware, be loaded into a programmable memory during manufacturing. This is accomplished using a device programmer. The programmed microprocessor is then installed into the printed circuit board. This separate programming results in higher costs for labor, and requires additional programmable device sockets on the circuit board. The separate programming also reduces the overall reliability of the board due to human error in programming the devices, and socket and interconnect failures.
Higher costs are also incurred for new software program upgrades in the field because the machine must be disassembled to gain access to the printed circuit board. The microprocessor is removed from the circuit board, reprogrammed, replaced on the circuit board, and the machine is re-assembled. Use of diagnostic programs to detect and correct malfunctions after manufacture is also a problem. For example, if a problem occurs the machine frequently must be disassembled to load a diagnostic program to analyze the system for non-functional components.
Thus, it would be desirable to load firmware upgrades, calibration data, customer specific information, preferences, or configuration selections into the machine with little or no disassembly. Some prior art attempts to solve this problem have used a floppy disk drive, or tape drive, to load the required data. These systems, however, are costly and significantly increase the price of the machine. Some printed circuit boards use flash memory and have a "boot block flash" wherein a block of the flash is never erased. The intent of this system is that the boot block section of the firmware would always be resident to load new code. However, the problem of initial device programming still exists in this system because something must program the boot block flash with the new firmware.